package com.example.mapper;

import com.example.entity.Role;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;

@Mapper
public interface RoleMapper {

    // 任务二：查询特定角色及其所拥有的所有菜单权限
    Role findRoleWithMenusById(@Param("roleId") Long roleId);

    // 分页查询所有角色
    List<Role> findAllRolesWithMenus(
            @Param("offset") Integer offset,
            @Param("pageSize") Integer pageSize);

    // 获取角色总数
    Long countAllRoles();

    // 任务四：维护角色权限 - 删除角色所有菜单
    void deleteRoleMenus(@Param("roleId") Long roleId);

    // 任务四：维护角色权限 - 添加角色菜单
    void addRoleMenu(@Param("roleId") Long roleId, @Param("menuId") Long menuId);

    // 根据角色名称查询角色
    Role findRoleByName(@Param("roleName") String roleName);
}
